js方法slice和splice的区别详解

来源:博客站 02月09日 22:40

在JavaScript中,slicesplice 是两个常用的数组方法,尽管它们名字相似,但它们的功能和用途却截然不同。下面是对这两个方法的详细比较和解释。

1. slice 方法

用途

slice 方法用于从数组中返回一个浅拷贝的部分,原数组不会被修改。

语法

array.slice(begin[, end])
  • begin:必需。规定从何处开始选取。如果是负数,则从数组末尾开始计算位置。
  • end:可选。规定从何处结束选取(但不包括该位置)。如果省略该参数,则选取到数组末尾。如果是负数,则从数组末尾开始计算位置。

返回值

返回一个新的数组,该数组包含从 beginend(不包括 end)之间的元素。

示例

let fruits = ['Apple', 'Banana', 'Cherry', 'Date'];
let slicedFruits = fruits.slice(1, 3);
console.log(slicedFruits); // 输出: ['Banana', 'Cherry']
console.log(fruits); // 输出: ['Apple', 'Banana', 'Cherry', 'Date'] (原数组未被修改)

2. splice 方法

用途

splice 方法用于通过删除或替换现有元素或者添加新元素来修改数组,并返回被删除的元素。原数组会被修改。

语法

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start:必需。规定从何处开始改变数组。如果是负数,则从数组末尾开始计算位置。
  • deleteCount:可选。整数,表示要移除的数组元素的个数。如果 deleteCount 是 0,则不移除元素。该参数省略时,移除从 start 位置开始到数组末尾的所有元素。
  • item1, item2, ...:可选。要添加进数组的元素,从 start 位置开始。如果不指定,则 splice 仅仅删除数组元素。

返回值

返回一个由被删除的元素组成的数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。

示例

let fruits = ['Apple', 'Banana', 'Cherry', 'Date'];
// 删除两个元素
let splicedFruits = fruits.splice(1, 2);
console.log(splicedFruits); // 输出: ['Banana', 'Cherry']
console.log(fruits); // 输出: ['Apple', 'Date'] (原数组被修改)

// 插入元素
fruits.splice(1, 0, 'Blueberry', 'Cranberry');
console.log(fruits); // 输出: ['Apple', 'Blueberry', 'Cranberry', 'Date']

// 替换元素
fruits.splice(1, 1, 'Blackberry');
console.log(fruits); // 输出: ['Apple', 'Blackberry', 'Cranberry', 'Date']

总结

  • slice:返回数组的一个部分(浅拷贝),不修改原数组。
  • splice:通过删除、替换或添加元素来修改数组,返回被删除的元素,修改原数组。

理解这两个方法的区别和用法,对于处理数组操作时非常重要。选择正确的方法可以提高代码的可读性和效率。

原文出处: 内容源于AI仅供参考,请勿使用于商业用途。如若转载请注明原文及出处。
出处地址:http://www.07sucai.com/tech/377.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

今日推荐

什么是Axios拦截器?
forEach 中 return 有效果吗?
CSS3动画代码集合
UniApp 如何处理动画?
uni-app中如何进行网络请求?
JavaScript 如何实现一个类,怎么实例化这个类?
栈和队列的区别详解
网站上不能复制的文字如何强行复制